using ColorFillGame.Domain.Entities;
using ColorFillGame.Domain.ValueObjects;

namespace ColorFillGame.Domain.Services;

public interface IGameService
{
    Game CreateGame(string name, int gridSize, int maxPlayers, string customId = null);
    void JoinGame(Game game, Player player);
    void LeaveGame(Game game, Guid playerId);
    void StartGame(Game game);
    void PerformPaintAction(Game game, Player player, Position position);
    bool CheckWinCondition(Game game, Player player);
    Dictionary<Player, int> CalculateScores(Game game);
    Player? GetPlayerWithMostCells(Game game);
}